22 research outputs found

    Data-intensive Systems on Modern Hardware : Leveraging Near-Data Processing to Counter the Growth of Data

    Get PDF
    Over the last decades, a tremendous change toward using information technology in almost every daily routine of our lives can be perceived in our society, entailing an incredible growth of data collected day-by-day on Web, IoT, and AI applications. At the same time, magneto-mechanical HDDs are being replaced by semiconductor storage such as SSDs, equipped with modern Non-Volatile Memories, like Flash, which yield significantly faster access latencies and higher levels of parallelism. Likewise, the execution speed of processing units increased considerably as nowadays server architectures comprise up to multiple hundreds of independently working CPU cores along with a variety of specialized computing co-processors such as GPUs or FPGAs. However, the burden of moving the continuously growing data to the best fitting processing unit is inherently linked to today’s computer architecture that is based on the data-to-code paradigm. In the light of Amdahl's Law, this leads to the conclusion that even with today's powerful processing units, the speedup of systems is limited since the fraction of parallel work is largely I/O-bound. Therefore, throughout this cumulative dissertation, we investigate the paradigm shift toward code-to-data, formally known as Near-Data Processing (NDP), which relieves the contention on the I/O bus by offloading processing to intelligent computational storage devices, where the data is originally located. Firstly, we identified Native Storage Management as the essential foundation for NDP due to its direct control of physical storage management within the database. Upon this, the interface is extended to propagate address mapping information and to invoke NDP functionality on the storage device. As the former can become very large, we introduce Physical Page Pointers as one novel NDP abstraction for self-contained immutable database objects. Secondly, the on-device navigation and interpretation of data are elaborated. Therefore, we introduce cross-layer Parsers and Accessors as another NDP abstraction that can be executed on the heterogeneous processing capabilities of modern computational storage devices. Thereby, the compute placement and resource configuration per NDP request is identified as a major performance criteria. Our experimental evaluation shows an improvement in the execution durations of 1.4x to 2.7x compared to traditional systems. Moreover, we propose a framework for the automatic generation of Parsers and Accessors on FPGAs to ease their application in NDP. Thirdly, we investigate the interplay of NDP and modern workload characteristics like HTAP. Therefore, we present different offloading models and focus on an intervention-free execution. By propagating the Shared State with the latest modifications of the database to the computational storage device, it is able to process data with transactional guarantees. Thus, we achieve to extend the design space of HTAP with NDP by providing a solution that optimizes for performance isolation, data freshness, and the reduction of data transfers. In contrast to traditional systems, we experience no significant drop in performance when an OLAP query is invoked but a steady and 30% faster throughput. Lastly, in-situ result-set management and consumption as well as NDP pipelines are proposed to achieve flexibility in processing data on heterogeneous hardware. As those produce final and intermediary results, we continue investigating their management and identified that an on-device materialization comes at a low cost but enables novel consumption modes and reuse semantics. Thereby, we achieve significant performance improvements of up to 400x by reusing once materialized results multiple times

    Data-intensive systems on modern hardware : Leveraging near-data processing to counter the growth of data

    No full text
    Over the last decades, a tremendous change toward using information technology in almost every daily routine of our lives can be perceived in our society, entailing an incredible growth of data collected day-by-day on Web, IoT, and AI applications. At the same time, magneto-mechanical HDDs are being replaced by semiconductor storage such as SSDs, equipped with modern Non-Volatile Memories, like Flash, which yield significantly faster access latencies and higher levels of parallelism. Likewise, the execution speed of processing units increased considerably as nowadays server architectures comprise up to multiple hundreds of independently working CPU cores along with a variety of specialized computing co-processors such as GPUs or FPGAs. However, the burden of moving the continuously growing data to the best fitting processing unit is inherently linked to today’s computer architecture that is based on the data-to-code paradigm. In the light of Amdahl's Law, this leads to the conclusion that even with today's powerful processing units, the speedup of systems is limited since the fraction of parallel work is largely I/O-bound. Therefore, throughout this cumulative dissertation, we investigate the paradigm shift toward code-to-data, formally known as Near-Data Processing (NDP), which relieves the contention on the I/O bus by offloading processing to intelligent computational storage devices, where the data is originally located. Firstly, we identified Native Storage Management as the essential foundation for NDP due to its direct control of physical storage management within the database. Upon this, the interface is extended to propagate address mapping information and to invoke NDP functionality on the storage device. As the former can become very large, we introduce Physical Page Pointers as one novel NDP abstraction for self-contained immutable database objects. Secondly, the on-device navigation and interpretation of data are elaborated. Therefore, we introduce cross-layer Parsers and Accessors as another NDP abstraction that can be executed on the heterogeneous processing capabilities of modern computational storage devices. Thereby, the compute placement and resource configuration per NDP request is identified as a major performance criteria. Our experimental evaluation shows an improvement in the execution durations of 1.4x to 2.7x compared to traditional systems. Moreover, we propose a framework for the automatic generation of Parsers and Accessors on FPGAs to ease their application in NDP. Thirdly, we investigate the interplay of NDP and modern workload characteristics like HTAP. Therefore, we present different offloading models and focus on an intervention-free execution. By propagating the Shared State with the latest modifications of the database to the computational storage device, it is able to process data with transactional guarantees. Thus, we achieve to extend the design space of HTAP with NDP by providing a solution that optimizes for performance isolation, data freshness, and the reduction of data transfers. In contrast to traditional systems, we experience no significant drop in performance when an OLAP query is invoked but a steady and 30% faster throughput. Lastly, in-situ result-set management and consumption as well as NDP pipelines are proposed to achieve flexibility in processing data on heterogeneous hardware. As those produce final and intermediary results, we continue investigating their management and identified that an on-device materialization comes at a low cost but enables novel consumption modes and reuse semantics. Thereby, we achieve significant performance improvements of up to 400x by reusing once materialized results multiple times.Über die letzten Jahrzehnte erkennt man in dem täglichen Leben unserer Gesellschaft eine gewaltige Veränderung hin zu der Nutzung von Informationstechnologie, welche einen enormen Anstieg an gesammelten Daten aus Web, IoT und KI Applikationen nach sich zieht. Zeitgleich werden magnet-mechanische HDDs durch Halbleiterspeicher wie SSDs ersetzt, welche durch ihren modernen nicht-flüchtigen Speicher signifikant schnellere Zugriffszeiten als auch einen höheren Parallelismus aufweisen. Ebenfalls steigt die Ausführungsgeschwindigkeit der Recheneinheiten erheblich, da heutige Serverarchitekturen bis zu mehreren Hundert unabhängig arbeitenden CPU Kernen zusammen mit einer Vielzahl an spezialisierten Co-Prozessoren wie GPUs oder FPGAs aufweisen. Allerdings ist die Belastung durch die Übertragung der stetig wachsenden Daten hin zu den bestmöglichen Verarbeitungseinheiten inhärent an die heutige Computerarchitektur gekoppelt, welche auf dem Prinzip Daten-bei-Verarbeitungseinheit basiert. Unter Berücksichtigung des Prinzips von Amdahl lässt sich schlussfolgern, dass selbst mit den heutigen leistungsstarken Recheneinheiten eine Beschleunigung der Systeme limitiert ist, da der Anteil an zu parallelisierender Arbeit stark an I/O gebunden ist. Im Rahmen dieser kumulativen Dissertation untersuchen wir daher den Wechsel zum Verarbeitungseinheit-zu-Daten Prinzip, bekannt als Near-Data Processing (NDP), welches die Belastung vom I/O Bus nimmt, indem die Verarbeitung auf intelligente rechengestützte Speichergeräte ausgelagert wird, wo sich die Daten ursprünglich befinden. Zunächst identifizieren wir Native Storage Management als essenzieller Grundbaustein für NDP, da es direkt den physikalischen Speicherbereich zentral innerhalb der Datenbank verwaltet. Darauf aufbauend wird die Schnittstelle zum Versenden von Adressverwaltungsinformationen und um Aufrufmöglichkeiten von NDP Funktionalitäten erweitert. Da das Erstere sehr groß werden kann, führen wir Physical Page Pointers als eine neuartige NDP Abstraktion für abgeschlossene, unveränderbare Datenbankobjekte ein. Zum Zweiten wird die Navigation und Interpretation von Daten auf dem Gerät ausgearbeitet. Dabei führen wir schichtübergreifende Parsers und Accessors als eine weitere NDP Abstraktion ein, welche auf den heterogenen Verarbeitungsmöglichkeiten von modernen rechenfähigen Speichergeräten ausgeführt werden können. Dadurch ist die Platzierung der Verarbeitung und die Konfiguration der Ressourcen pro NDP Anfrage als ein wesentliches Leistungskriterium identifiziert worden. Unsere experimentelle Evaluierung ergibt eine Verbesserung der Ausführungszeit von 1,4x bis zu 2,7x verglichen mit traditionellen Systemen. Darüber hinaus schlagen wir ein Framework zur automatischen Generierung von Parsers und Accessors für FPGAs vor, um deren Anwendung in NDP zu vereinfachen. Zum Dritten untersuchen wir das Zusammenspiel von NDP und modernen Arbeitslastcharakteristiken wie HTAP. Dafür präsentieren wir verschiedene Auslagerungsmodelle und fokussieren auf eine ununterbrochene Ausführung. Durch das Verschicken des Shared State mit den jüngsten Änderungen der Datenbank an das rechengestützte Speichergerät ist dieses in der Lage, Daten mit transaktionalen Garantien zu verarbeiten. Somit erreichen wir auch eine Erweiterung des HTAP Gestaltungsraums durch NDP, indem wir eine Lösung aufzeigen, die sowohl auf Leistungsisolation, Neuheitswert der Daten als auch die Reduktion von Datenübertragungen optimiert. Im Gegensatz zu traditionellen Systemen erleben wir keinen signifikanten Leistungsrückgang, wenn eine OLAP Anfrage aufgerufen wird, sondern einen stabilen und 30% schnelleren Durchsatz. Zuletzt schlagen wir in-situ Ergebnisverwaltung und -Konsum sowie NDP Pipelines zur flexiblen Datenverarbeitung auf heterogener Hardware vor. Da diese End- als auch Zwischenergebnisse produzieren, untersuchen wir deren Verwaltung und identifizieren, dass eine Materialisierung auf dem Gerät mit nur geringen Kosten verknüpft ist, aber neuartige Konsummodelle und Semantiken in der Wiederverwendung ermöglicht. Durch die mehrfache Wiederverwendung von einmal materialisierten Ergebnisse erreichen wir eine signifikante Leistungsverbesserung von bis zu 400x

    Near data processing within column-oriented DBMSs for high performance analysis

    Get PDF
    Rapidly growing data volumes push today's analytical systems close to the feasible processing limit. Massive parallelism is one possible solution to reduce the computational time of analytical algorithms. However, data transfer becomes a significant bottleneck since it blocks system resources moving data-to-code. Technological advances allow to economically place compute units close to storage and perform data processing operations close to data, minimizing data transfers and increasing scalability. Hence the principle of Near Data Processing (NDP) and the shift towards code-to-data. In the present paper we claim that the development of NDP-system architectures becomes an inevitable task in the future. Analytical DBMS like HPE Vertica have multiple points of impact with major advantages which are presented within this paper

    cIPT : shift of image processing technologies to column-oriented databases

    No full text
    The amount of image data has been rising exponentially over the last decades due to numerous trends like social networks, smartphones, automotive, biology, medicine and robotics. Traditionally, file systems are used as storage. Although they are easy to use and can handle large data volumes, they are suboptimal for efficient sequential image processing due to the limitation of data organisation on single images. Database systems and especially column-stores support more stuctured storage and access methods on the raw data level for entiere series. In this paper we propose definitions of various layouts for an efficient storage of raw image data and metadata in a column store. These schemes are designed to improve the runtime behaviour of image processing operations. We present a tool called column-store Image Processing Toolbox (cIPT) allowing to easily combine the data layouts and operations for different image processing scenarios. The experimental evaluation of a classification task on a real world image dataset indicates a performance increase of up to 15x on a column store compared to a traditional row-store (PostgreSQL) while the space consumption is reduced 7x. With these results cIPT provides the basis for a future mature database feature

    Write-optimized indexing with partitioned B-trees

    No full text
    Database management systems (DBMS) are critical performance components in large scale applications under modern update intensive workloads. Additional access paths accelerate look-up performance in DBMS for frequently queried attributes, but the required maintenance slows down update performance. The ubiquitous B+ tree is a commonly used key-indexed access path that is able to support many required functionalities with logarithmic access time to requested records. Modern processing and storage technologies and their characteristics require reconsideration of matured indexing approaches for today's workloads. Partitioned B-trees (PBT) leverage characteristics of modern hardware technologies and complex memory hierarchies as well as high update rates and changes in workloads by maintaining partitions within one single B+-Tree. This paper includes an experimental evaluation of PBTs optimized write pattern and performance improvements. With PBT transactional throughput under TPC-C increases 30%; PBT results in beneficial sequential write patterns even in presence of updates and maintenance operations

    Multi-version indexing and modern hardware technologies

    No full text
    Characteristics of modern computing and storage technologies fundamentally differ from traditional hardware. There is a need to optimally leverage their performance, endurance and energy consumption characteristics. Therefore, existing architectures and algorithms in modern high performance database management systems have to be redesigned and advanced. Multi Version Concurrency Control (MVCC) approaches in data-base management systems maintain multiple physically independent tuple versions. Snapshot isolation approaches enable high parallelism and concurrency in workloads with almost serializable consistency level. Modern hardware technologies benefit from multi-version approaches. Indexing multi-version data on modern hardware is still an open research area. In this paper, we provide a survey of popular multi-version indexing approaches and an extended scope of high performance single-version approaches. An optimal multi-version index structure brings look-up efficiency of tuple versions, which are visible to transactions, and effort on index maintenance in balance for different workloads on modern hardware technologies

    Indexing large updatable datasets in multi-version database management systems

    No full text
    Database Management Systems (DBMS) need to handle large updatable datasets in on-line transaction processing (OLTP) workloads. Most modern DBMS provide snapshots of data in multi-version concurrency control (MVCC) transaction management scheme. Each transaction operates on a snapshot of the database, which is calculated from a set of tuple versions. High parallelism and resource-efficient append-only data placement on secondary storage is enabled. One major issue in indexing tuple versions on modern hardware technologies is the high write amplification for tree-indexes. Partitioned B-Trees (PBT) [5] is based on the structure of the ubiquitous B+ Tree [8]. They achieve a near optimal write amplification and beneficial sequential writes on secondary storage. Yet they have not been implemented in a MVCC enabled DBMS to date. In this paper we present the implementation of PBTs in PostgreSQL extended with SIAS. Compared to PostgreSQL’s B+–Trees PBTs have 50% better transaction throughput under TPC-C and a 30% improvement to standard PostgreSQL with Heap-Only Tuples

    MV-PBT: multi-version indexing for large datasets and HTAP workloads

    No full text
    Modern mixed (HTAP)workloads execute fast update-transactions and long running analytical queries on the same dataset and system. In multi-version (MVCC) systems, such workloads result in many short-lived versions and long version-chains as well as in increased and frequent maintenance overhead. Consequently, the index pressure increases significantly. Firstly, the frequent modifications cause frequent creation of new versions, yielding a surge in index maintenance overhead. Secondly and more importantly, index-scans incur extra I/O overhead to determine, which of the resulting tuple versions are visible to the executing transaction (visibility-check) as current designs only store version/timestamp information in the base table – not in the index. Such index-only visibility-check is critical for HTAP workloads on large datasets. In this paper we propose the Multi Version Partitioned B-Tree (MV-PBT) as a version-aware index structure, supporting index-only visibility checks and flash-friendly I/O patterns. The experimental evaluation indicates a 2x improvement for analytical queries and 15% higher transactional throughput under HTAP workloads. MV-PBT offers 40% higher tx. throughput compared to WiredTiger’s LSM-Tree implementation under YCSB

    Real time charging database benchmarking

    No full text
    Real Time Charging (RTC) applications that reside in the telecommunications domain have the need for extremely fast database transactions. Today´s providers rely mostly on in-memory databases for this kind of information processing. A flexible and modular benchmark suite specifically designed for this domain provides a valuable framework to test the performance of different DB candidates. Besides a data and a load generator, the suite also includes decoupled database connectors and use case components for convenient customization and extension. Such easily produced test results can be used as guidance for choosing a subset of candidates for further tuning/testing and finally evaluating the database most suited to the chosen use cases. This is why our benchmark suite can be of value for choosing databases for RTC use cases

    IPA-IDX: In-Place Appends for B-tree indices

    No full text
    We introduce IPA-IDX – an approach to handle index modifications modern storage technologies (NVM, Flash) as physical in-place appends, using simplified physiological log records. IPA-IDX provides similar performance and longevity advantages for indexes as basic IPA [5] does for tables. The selective application of IPA-IDX and basic IPA to certain regions and objects, lowers the GC overhead by over 60%, while keeping the total space overhead to 2%. The combined effect of IPA and IPA-IDX increases performance by 28%
    corecore